package com.yonyou.gmmc.service.shopping.dao;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.yonyou.gmmc.common.annotation.OracleDb;
import com.yonyou.gmmc.service.shopping.model.TmTpShoppingCar;
import tk.mybatis.mapper.common.Mapper;

@OracleDb
public interface TmTpShoppingCarMapper extends Mapper<TmTpShoppingCar> {
    
    /**
    * 查询该车主在购物车中是否已存在此商品的记录
    * @author Administrator
    * TODO description
    * @date 2017年4月17日
    * @param tmTpShoppingCar
    * @return
    */
    public TmTpShoppingCar selectIfExist(TmTpShoppingCar tmTpShoppingCar);
    
    /**
    * 查询购物车信息列表
    * @author Administrator
    * TODO description
    * @date 2017年4月18日
    * @param userId
    * @return
    */
    public List<TmTpShoppingCar> selectShoppingCar(@Param("userId") BigDecimal userId,@Param("RATIO") String RATIO);
    
    /**
     * 查询购物车总价和总数
     * 
     * @author lyq
     * @date 2017年5月5日
     * @param userId
     * @return
     * @throws Exception
     */
     public List<Map<String, Object>> selectSumPriceNum(@Param("userId") BigDecimal userId,@Param("RATIO") String RATIO);
    
    /**
    *
    * @author Administrator
    * TODO description
    * @date 2017年5月3日
    * @param userId
    * @return
    */
    public List<TmTpShoppingCar> selectJDprice(@Param("userId") BigDecimal userId);
    /**
    * 保存购物车信息
    * @author Administrator
    * TODO description
    * @date 2017年4月18日
    * @param tmTpShoppingCar
    */
    public void insertShoppingCar(TmTpShoppingCar tmTpShoppingCar);
    
    /**
    * 更新该车主在购物车中的某个商品信息
    * @author Administrator
    * TODO description
    * @date 2017年4月17日
    * @param tmTpShoppingCar
    */
    public void updateShoppingCar(TmTpShoppingCar tmTpShoppingCar);
    
    /**
    * 删除购物车某条信息
    * @author Administrator
    * TODO description
    * @date 2017年4月17日
    * @param userId
    * @param skuId
    */
    public void deleteShoppingCar(@Param("userId") BigDecimal userId,@Param("skuId") String skuId);
    
    /**
     * 查询商品规格
     * @param skuId
     * @return
     */
    public Map<String,Object> selectGroup(@Param("skuId") String skuId);
}